1.2.8.3. alpha.unix.PthreadLock (C)
Simple lock -> unlock checker. Applies to: pthread_mutex_lock, pthread_rwlock_rdlock, pthread_rwlock_wrlock, lck_mtx_lock, lck_rw_lock_exclusivelck_rw_lock_shared, pthread_mutex_trylock, pthread_rwlock_tryrdlock, pthread_rwlock_tryrwlock, lck_mtx_try_lock, lck_rw_try_lock_exclusive, lck_rw_try_lock_shared, pthread_mutex_unlock, pthread_rwlock_unlock, lck_mtx_unlock, lck_rw_done.
Examples:
pthread_mutex_t mtx; void test() { pthread_mutex_lock(&mtx); pthread_mutex_lock(&mtx); // warn: this lock has already been acquired } lck_mtx_t lck1, lck2; void test() { lck_mtx_lock(&lck1); lck_mtx_lock(&lck2); lck_mtx_unlock(&lck1); // warn: this was not the most recently acquired lock } lck_mtx_t lck1, lck2; void test() { if (lck_mtx_try_lock(&lck1) == 0) return; lck_mtx_lock(&lck2); lck_mtx_unlock(&lck1); // warn: this was not the most recently acquired lock }